package net.lanelife.casino.caipiao.dto.admin;

import java.util.Date;

import net.lanelife.casino.caipiao.entity.BankTransactionDetail.SourceUsesType;
import net.lanelife.casino.caipiao.entity.BankTransactionDetail.TransactionDirection;
import net.lanelife.casino.common.dto.PersistentDTO;
import net.lanelife.casino.common.entity.json.serialize.CurrencySerializer;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

public class BankTransactionDetailDTO extends PersistentDTO<Integer> {

	private static final long serialVersionUID = 5456054754134922185L;

	private Integer id;

	private String sourceBankName;
	
	private String sourceAccountName;
	
	private String sourceAccountNo;
	
	private SourceUsesType sourceUsesType;
	
	private String destinationBankName;
	
	private String destinationAccountName;
	
	private String destinationAccountNo;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double transactionAmount;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double transactionFee;
	
	private TransactionDirection transactionDirection;
	
	@JsonSerialize(using = CurrencySerializer.class)
	private Double currentBalance;
	
	private String userName;
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date transactionTime;
	
	private String createdBy;
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date createdDate;
	
	private String lastModifiedBy;
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date lastModifiedDate;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getSourceBankName() {
		return sourceBankName;
	}

	public void setSourceBankName(String sourceBankName) {
		this.sourceBankName = sourceBankName;
	}

	public String getSourceAccountName() {
		return sourceAccountName;
	}

	public void setSourceAccountName(String sourceAccountName) {
		this.sourceAccountName = sourceAccountName;
	}

	public String getSourceAccountNo() {
		return sourceAccountNo;
	}

	public void setSourceAccountNo(String sourceAccountNo) {
		this.sourceAccountNo = sourceAccountNo;
	}

	public SourceUsesType getSourceUsesType() {
		return sourceUsesType;
	}

	public void setSourceUsesType(SourceUsesType sourceUsesType) {
		this.sourceUsesType = sourceUsesType;
	}

	public String getDestinationBankName() {
		return destinationBankName;
	}

	public void setDestinationBankName(String destinationBankName) {
		this.destinationBankName = destinationBankName;
	}

	public String getDestinationAccountName() {
		return destinationAccountName;
	}

	public void setDestinationAccountName(String destinationAccountName) {
		this.destinationAccountName = destinationAccountName;
	}

	public String getDestinationAccountNo() {
		return destinationAccountNo;
	}

	public void setDestinationAccountNo(String destinationAccountNo) {
		this.destinationAccountNo = destinationAccountNo;
	}

	public Double getTransactionAmount() {
		return transactionAmount;
	}

	public void setTransactionAmount(Double transactionAmount) {
		this.transactionAmount = transactionAmount;
	}

	public Double getTransactionFee() {
		return transactionFee;
	}

	public void setTransactionFee(Double transactionFee) {
		this.transactionFee = transactionFee;
	}

	public TransactionDirection getTransactionDirection() {
		return transactionDirection;
	}

	public void setTransactionDirection(TransactionDirection transactionDirection) {
		this.transactionDirection = transactionDirection;
	}

	public Double getCurrentBalance() {
		return currentBalance;
	}

	public void setCurrentBalance(Double currentBalance) {
		this.currentBalance = currentBalance;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public Date getTransactionTime() {
		return transactionTime;
	}

	public void setTransactionTime(Date transactionTime) {
		this.transactionTime = transactionTime;
	}

	public String getCreatedBy() {
		return createdBy;
	}

	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}

	public Date getCreatedDate() {
		return createdDate;
	}

	public void setCreatedDate(Date createdDate) {
		this.createdDate = createdDate;
	}

	public String getLastModifiedBy() {
		return lastModifiedBy;
	}

	public void setLastModifiedBy(String lastModifiedBy) {
		this.lastModifiedBy = lastModifiedBy;
	}

	public Date getLastModifiedDate() {
		return lastModifiedDate;
	}

	public void setLastModifiedDate(Date lastModifiedDate) {
		this.lastModifiedDate = lastModifiedDate;
	}

}
